package com.itheima.auth.service;

import com.itheima.model.admin.dtos.WechatBindDto;
import com.itheima.model.common.dtos.ResponseResult;

/**
 * 微信OAuth2服务接口
 */
public interface WechatOAuth2Service {
    
    /**
     * 生成微信扫码登录授权URL
     * 
     * @param state 状态参数，用于防止CSRF攻击
     * @return 授权URL
     */
    ResponseResult generateAuthUrl(String state);
    
    /**
     * 处理微信授权回调
     * 
     * @param code 授权码
     * @param state 状态参数
     * @return 登录结果（已绑定返回token，未绑定返回临时token）
     */
    ResponseResult handleCallback(String code, String state);
    
    /**
     * 绑定微信账号
     * 
     * @param dto 绑定信息（临时token + 用户名密码）
     * @return 绑定结果
     */
    ResponseResult bindWechat(WechatBindDto dto);
    
    /**
     * 解绑微信账号
     * 
     * @param adminId 管理员ID
     * @return 解绑结果
     */
    ResponseResult unbindWechat(Integer adminId);
}

